#include <tool/XMLTool.h>

namespace ne
{
    const std::string XMLTool::XML_AT_BYTE = "BYTE";
    const std::string XMLTool::XML_AT_CHAR = "CHAR";
    const std::string XMLTool::XML_AT_SHORT = "SHORT";
    const std::string XMLTool::XML_AT_USHORT = "USHORT";
    const std::string XMLTool::XML_AT_INT = "INT";
    const std::string XMLTool::XML_AT_UINT = "UINT";
    const std::string XMLTool::XML_AT_INT64 = "INT64";
    const std::string XMLTool::XML_AT_UINT64 = "UINT64";
    const std::string XMLTool::XML_AT_REAL = "REAL";
    const std::string XMLTool::XML_AT_STRING = "STRING";
    const std::string XMLTool::XML_AT_VEC2 = "VEC2";
    const std::string XMLTool::XML_AT_VEC3 = "VEC3";
    const std::string XMLTool::XML_AT_VEC4 = "VEC4";
    const std::string XMLTool::XML_AT_QUAT = "QUAT";
    const std::string XMLTool::XML_AT_MAT3 = "MAT3";
    const std::string XMLTool::XML_AT_MAT4 = "MAT4";
    const std::string XMLTool::XML_AT_COLOR = "COLOR";

    /*
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const byte &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const char &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const int16_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const uint16_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const int32_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const uint32_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const int64_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const uint64_t &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const real &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const std::string &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Vector2 &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Vector3 &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Vector4 &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Quaternion &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Matrix3 &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Matrix4 &a);
    void XMLTool::SetProperty(XMLElement *pElement, const std::string &name, const Color &a);

    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, byte &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, char &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, int16_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, uint16_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, int32_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, uint32_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, int64_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, uint64_t &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, real &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, std::string &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Vector2 &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Vector3 &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Vector4 &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Quaternion &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Matrix3 &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Matrix4 &a);
    bool XMLTool::GetProperty(XMLElement *pElement, const std::string &name, Color &a);

    XMLElement* XMLTool::GetPropertyElement(XMLElement *pElement, const std::string &name);

    void XMLTool::RemoveProperty(XMLElement *pElement, const std::string &name);
    */
}
